<?php
/**
 * Controller_Prognoz
 *
 * Класс Controller_Prognoz отвечает за обработку раздела Прогнозы
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */
class Controller_Prognoz extends Controller_Base {


	public function __construct(&$arrRequest) {
		$objPrognoz = new Prognoz();
    $this->setCrumbs(array(
      array('url' => W_ABSPATH, 'name' => 'Хлебные крошки')
    ));

		parent::__construct($arrRequest);
		switch ($this->arrRequest[1]) {
		  case '':
   			$this->getActionListPrognozs(false);
   			break;
		  case 'vip':
   			$this->getActionListPrognozs(true);
   			break;
		  case 'edit':
		  	if (isset($arrRequest[2]) && is_numeric($arrRequest[2])) {
		  	  $this->getActionEdit(intval($arrRequest[2]));
		  	}
		  	else $this->show404Error();
				break;
		  case 'add':
		  	$this->getActionAdd();
				break;
		  case 'catalog':
		  	$this->getActionCatalog();
				break;				
		  case 'delete':
		    $this->getActionDelete();
				break;				
		  default: $this->show404Error();
		}
		        
	}

  /**
	 * Действие - удаление Прогноза. 
	 *
	 */
	public function getActionDelete() {
  
	}	

	
  /**
	 * Действие -вывод страницы Прогнозов 
	 *
	 */	
	
	public function getActionListPrognozs($isVip){
    if ($isVip) $articleId = 4;
    else $articleId = 3;
	  $objArticle = new Article($articleId);
	  $this->pageHead = $objArticle->getField('article_name');
	  $this->title = $objArticle->getField('title');
	  $this->keywords = $objArticle->getField('keywords');
	  $this->description = $objArticle->getField('description');
	  
	  $objPrognoz = new Prognoz();
  	$arrPrognozs = $objPrognoz->find('all', array('select' => '`prognoz`.`ID_prognoz`,  `prognoz`.`prognoz_name`, `prognoz`.`is_vip`, `prognoz`.`ratio`, `prognoz`.`result_match`, `prognoz`.`play_off`, `prognoz`.`prognoz_name`, `prognoz`.`date`, `prognoz`.`text`',
  																							  'conditions' => '`is_vip` = ' . intval($isVip),
  																							  'order' => '`created_at` ASC'
																								  ));
    

		if (SimpleAdministration::isAdmin()) $this->pageHead .= ' <a href="' . W_ABSPATH . 'article/edit/' . $articleId . '/"><img src="/prognoz/content/images/icons/edit.gif" class="editIco" alt=""></a> <a href="' . W_ABSPATH . 'prognoz/add/"><img src="' . W_IMAGES . 'button/add.gif" class="addButton" alt="" /></a>';
		$this->addCrumb($this->title, null, true);
		$this->addJs('prognoz.js');
		$this->addCss('prognoz.css');
		
		$this->showHeader();
      echo '<div style="padding-bottom:15px;">' . $objArticle->getField('text') . '</div>';
		  View_Prognoz::showList($arrPrognozs, $isVip);
		$this->showFooter();		
	}

  /**
	 * Действие - добавление Прогноза. 
	 *
	 */
	public function getActionAdd() {
		if (isset($_POST['Prognoz'])) {
			$objPrognoz = new Prognoz($_POST['Prognoz']);
			if ($objPrognoz->save()) User_Session::moveTo(W_ABSPATH . 'prognoz/edit/' . $objPrognoz->id . '/', 'Прогноз добавлен', 1);
		}
		else {
			$objPrognoz = new Prognoz();
		}
		
		$this->addWysiwygMetas();
		$this->addDatepickerMetas();
	  $this->title = 'Добавление прогноза';
	  $this->pageHead = $this->title;
		$this->addJsReady('initFormsDatepickers();');	  
		$this->showHeader();
      View_Prognoz::showForm($objPrognoz);
	  $this->showFooter();
	}	

	/**
	 * Действие - редактирование Прогноза
	 *
	 * @param int $prognozId
	 */
  public function getActionEdit($prognozId) {
	  $objPrognoz = new Prognoz($prognozId);
		if (isset($_POST['Prognoz'])) {
		  $objPrognoz = new Prognoz($_POST['Prognoz']);
		  if ($prognozId != $objPrognoz->id) User_Session::moveTo(W_ABSPATH, 'Вы редактируете другую статью!');
			if ($objPrognoz->save()) {
				User_Session::moveTo(W_ABSPATH . 'prognoz/', 'Прогноз изменен', 1);
			}
		}
		else {}
	
		$this->addWysiwygMetas();		
		$this->addDatepickerMetas();
		$this->addJsReady('initFormsDatepickers();');
		$this->title = 'Редактирование прогноза';
		$this->pageHead = $this->title;
	  $this->showHeader();
      View_Prognoz::showForm($objPrognoz);
	  $this->showFooter();
	}
	
	/**
	 * Действие - список VIP пакетов
	 *
	 * @param $catalog
	 */
	public function getActionCatalog() {
    $objOrder = new Order(1);
	  $catalog = 0;

    $this->addWysiwygMetas();		
    $this->addDatepickerMetas();
    $this->title = 'Как стать VIP клиентом!';
    $this->pageHead = $this->title;
    $this->showHeader();
      View_Prognoz::showCatalog($catalog, $objOrder);
    $this->showFooter();	

	}

	/**
	 * Действие - формирование массива $fieldValues
	 *
	 * @param $fieldValues
	 */		
	public function getSignature($fields) {
        $fieldValues = "";
        
        foreach($fields as $value) 
        {
            if (is_array($value))
               foreach($value as $v)
               {
        	  //Конвертация из текущей кодировки (UTF-8)
                  //необходима только если кодировка магазина отлична от Windows-1251
                  $v = iconv("utf-8", "windows-1251", $v);
                  $fieldValues .= $v;
               }
           else
          {
             //Конвертация из текущей кодировки (UTF-8)
             //необходима только если кодировка магазина отлична от Windows-1251
             $value = iconv("utf-8", "windows-1251", $value);
             $fieldValues .= $value;
          }
        }
	return $fieldValues;
	}

	/**
	 * Действие - сортировка значений в массиве $fields
	 *
	 * @param $fieldValues
	 */		
	
	public function getSorting($fields) {
    //Сортировка значений внутри полей
    foreach($fields as $name => $val) 
    {
      if (is_array($val))
      {
         usort($val, "strcasecmp");
         $fields[$name] = $val;
      }
    }
    
    // Формирование сообщения, путем объединения значений формы, 
    // отсортированных по именам ключей в порядке возрастания.
    uksort($fields, "strcasecmp");
    
    return $fields;
	   
	}
	
}
?>